home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / lib / python2.6 / lib-tk / tkMessageBox.py < prev    next >
Encoding:
Python Source  |  2010-12-26  |  3.6 KB  |  135 lines

  1. # tk common message boxes
  2. #
  3. # this module provides an interface to the native message boxes
  4. # available in Tk 4.2 and newer.
  5. #
  6. # written by Fredrik Lundh, May 1997
  7. #
  8.  
  9. #
  10. # options (all have default values):
  11. #
  12. # - default: which button to make default (one of the reply codes)
  13. #
  14. # - icon: which icon to display (see below)
  15. #
  16. # - message: the message to display
  17. #
  18. # - parent: which window to place the dialog on top of
  19. #
  20. # - title: dialog title
  21. #
  22. # - type: dialog type; that is, which buttons to display (see below)
  23. #
  24.  
  25. from tkCommonDialog import Dialog
  26.  
  27. #
  28. # constants
  29.  
  30. # icons
  31. ERROR = "error"
  32. INFO = "info"
  33. QUESTION = "question"
  34. WARNING = "warning"
  35.  
  36. # types
  37. ABORTRETRYIGNORE = "abortretryignore"
  38. OK = "ok"
  39. OKCANCEL = "okcancel"
  40. RETRYCANCEL = "retrycancel"
  41. YESNO = "yesno"
  42. YESNOCANCEL = "yesnocancel"
  43.  
  44. # replies
  45. ABORT = "abort"
  46. RETRY = "retry"
  47. IGNORE = "ignore"
  48. OK = "ok"
  49. CANCEL = "cancel"
  50. YES = "yes"
  51. NO = "no"
  52.  
  53.  
  54. #
  55. # message dialog class
  56.  
  57. class Message(Dialog):
  58.     "A message box"
  59.  
  60.     command  = "tk_messageBox"
  61.  
  62.  
  63. #
  64. # convenience stuff
  65.  
  66. # Rename _icon and _type options to allow overriding them in options
  67. def _show(title=None, message=None, _icon=None, _type=None, **options):
  68.     if _icon and "icon" not in options:    options["icon"] = _icon
  69.     if _type and "type" not in options:    options["type"] = _type
  70.     if title:   options["title"] = title
  71.     if message: options["message"] = message
  72.     res = Message(**options).show()
  73.     # In some Tcl installations, yes/no is converted into a boolean.
  74.     if isinstance(res, bool):
  75.         if res:
  76.             return YES
  77.         return NO
  78.     # In others we get a Tcl_Obj.
  79.     return str(res)
  80.  
  81. def showinfo(title=None, message=None, **options):
  82.     "Show an info message"
  83.     return _show(title, message, INFO, OK, **options)
  84.  
  85. def showwarning(title=None, message=None, **options):
  86.     "Show a warning message"
  87.     return _show(title, message, WARNING, OK, **options)
  88.  
  89. def showerror(title=None, message=None, **options):
  90.     "Show an error message"
  91.     return _show(title, message, ERROR, OK, **options)
  92.  
  93. def askquestion(title=None, message=None, **options):
  94.     "Ask a question"
  95.     return _show(title, message, QUESTION, YESNO, **options)
  96.  
  97. def askokcancel(title=None, message=None, **options):
  98.     "Ask if operation should proceed; return true if the answer is ok"
  99.     s = _show(title, message, QUESTION, OKCANCEL, **options)
  100.     return s == OK
  101.  
  102. def askyesno(title=None, message=None, **options):
  103.     "Ask a question; return true if the answer is yes"
  104.     s = _show(title, message, QUESTION, YESNO, **options)
  105.     return s == YES
  106.  
  107. def askyesnocancel(title=None, message=None, **options):
  108.     "Ask a question; return true if the answer is yes, None if cancelled."
  109.     s = _show(title, message, QUESTION, YESNOCANCEL, **options)
  110.     # s might be a Tcl index object, so convert it to a string
  111.     s = str(s)
  112.     if s == CANCEL:
  113.         return None
  114.     return s == YES
  115.  
  116. def askretrycancel(title=None, message=None, **options):
  117.     "Ask if operation should be retried; return true if the answer is yes"
  118.     s = _show(title, message, WARNING, RETRYCANCEL, **options)
  119.     return s == RETRY
  120.  
  121.  
  122. # --------------------------------------------------------------------
  123. # test stuff
  124.  
  125. if __name__ == "__main__":
  126.  
  127.     print "info", showinfo("Spam", "Egg Information")
  128.     print "warning", showwarning("Spam", "Egg Warning")
  129.     print "error", showerror("Spam", "Egg Alert")
  130.     print "question", askquestion("Spam", "Question?")
  131.     print "proceed", askokcancel("Spam", "Proceed?")
  132.     print "yes/no", askyesno("Spam", "Got it?")
  133.     print "yes/no/cancel", askyesnocancel("Spam", "Want it?")
  134.     print "try again", askretrycancel("Spam", "Try again?")
  135.